package item1;

import java.util.Random;
public class Main {
    //`main`方法的声明
    public static void main(String[] args) {
        // 创建学生数组
        Student[] students = new Student[]{
                //初始化五个`Student`对象
                new Student("Alice", 20),
                new Student("Bob", 22),
                new Student("Charlie", 21),
                new Student("David", 23),
                new Student("Eva", 19)
        };

        // 创建小组数组
        Group[] groups = new Group[]{
                //初始化了三个`Group`对象
                //每个`Group`对象都通过其构造器接收一个字符串（小组的名称）
                // 和一个`Student`数组（小组内的学生）
                new Group("Group A", new Student[]{students[0], students[1]}),
                new Group("Group B", new Student[]{students[2], students[3]}),
                new Group("Group C", new Student[]{students[4]})
        };

        // 随机抽取一个学生
        //调用`getRandomStudent`方法，并传入`students`数组作为参数
        Student randomStudent = getRandomStudent(students);
        //这个方法返回一个随机选择的`Student`对象，然后打印
        System.out.println("Randomly selected student: " + randomStudent);

        // 随机抽取一个小组
        //调用`getRandomGroup`方法，并传入`groups`数组作为参数
        Group randomGroup = getRandomGroup(groups);
        //这个方法返回一个随机选择的`Group`对象，然后打印
        System.out.println("Randomly selected group: " + randomGroup);
    }

    // 随机抽取学生的方法
    public static Student getRandomStudent(Student[] students) {
        Random random = new Random();
        int index = random.nextInt(students.length);
        return students[index];
    }

    // 随机抽取小组的方法
    //`getRandomGroup`方法是一个静态方法，
    // 它接受一个`Group`数组作为参数，并返回一个随机选择的`Group`对象。
    // 这个方法定义在`Main`类中
    public static Group getRandomGroup(Group[] groups) {
        // 创建Random对象  用于生成随机数
        Random random = new Random();
        // 生成一个随机索引
        //调用`Random`对象的`nextInt`方法，并传入`groups`数组的长度作为参数
        //生成的随机索引可以指向数组中的任何一个`Group`对象
        int index = random.nextInt(groups.length);
        // 返回随机索引对应的小组对象
        return groups[index];
    }
}
